# 指定CMake最低版本要求
cmake_minimum_required(VERSION 3.20)

# 设置项目名称，并使用C++语言
project(Hazel LANGUAGES CXX)

# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 设置全局的编译选项（可选，不推荐）
# 例如，在Debug模式下启用调试信息
set(CMAKE_CXX_FLAGS_DEBUG "/Zi /Od")
# 针对Microsoft Visual Studio编译器，使用更精确的设置
if(MSVC)
    # 强制使用Unicode字符集
    add_compile_definitions(UNICODE _UNICODE)
    # 避免使用更复杂的CMAKE_CXX_FLAGS设置
    # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
endif()

# 设置输出目录，所有目标文件都将放在该目录下的 `bin` 文件夹中
# 这使得Visual Studio中的输出位置更整洁
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# 运行项目报错：debug assertion failed! program:......\vector line:77  cant increment value-initialized vector interator 请全面分析并解决
# 添加子目录，首先构建Hazel库，然后构建Sandbox可执行文件
add_subdirectory(Hazel)
add_subdirectory(Sandbox)
